package 二叉树的递归遍历.中序遍历;

import java.util.ArrayList;
import java.util.List;

public class Solution1 {
    List<Integer> list = new ArrayList<>();

    public List<Integer> inorderTraversal(TreeNode root) {
        // 利用递归进行中序遍历，递归需要解决三件事
        // 1.递归函数的参数和返回的值
        // 2.递归的终止条件
        // 3.单层递归需要实现的逻辑

        // ① 参数：TreeNode 返回值：List<Integer> ② TreeNode == null ③ 遍历左子树 -> 添加当前节点的值 -> 遍历右子树
        if (root != null) {
            inorderTraversal(root.left);
            list.add(root.val);
            inorderTraversal(root.right);
        }
        return list;
    }
}
